package cn.edu.scut.hsrc.bean;

import java.util.Map;

/**
 * 反引用描述接口类
 * @file IRef.java
 * @author feiyu
 *
 * @param <K>
 */

public interface IRef<K,V> {
	/**
	 * 获取所有引用
	 * @return 
	 */
	public Map<K, V> getRefs();
	
	/**
	 * 添加新的反引用对象到集合中去，实现的时候进行去重处理，
	 * @param key	键值
	 * @param val	值
	 * @return true表示添加成功，false表示已经存在或者ref是null，添加失败（反引用集合不会发生任何变化）
	 */
	public boolean addRef(K key,V val);
	
	/**
	 * 添加多个反引用，实现的时候进行去重处理，返回实际添加的反引用的数目
	 * @param refs
	 * @return  返回实际添加的反引用的数目，如果没有添加就返回0
	 */
	public int addRefs(Map<K, V> refs);
	
	/**
	 * 设置引用集合，如果refs是null，那么什么也不会发生
	 * @param refs
	 */
	public void setRefs(Map<K, V> refs);
}

